Span开源库
Span 开源库
spannable
支持正则匹配/图文混排/图标/GIF 动画/自定义表情包。

SimplifySpan
示例:
private fun getSpanText(
textview: TextView,
listener: OnClickableSpanListener
): SpannableStringBuilder {
val linkNorTextColor = -0xb7c275
val linkPressBgColor = -0x783106
val spanBuild = SimplifySpanBuild()
spanBuild.append("无默认背景11]")
.append(
SpecialImageUnit(
applicationContext,
BitmapFactory.decodeResource(resources, R.drawable.level)
)
.setGravity(SpecialGravity.CENTER)
)
.append(
SpecialTextUnit("[点我点我000").setClickableUnit(
SpecialClickableUnit(
textview,
listener
).setTag("1").setPressBgColor(-0xb000)
).setTextColor(
Color.BLUE
)
)
.appendMultiClickable(
SpecialClickableUnit(textview, listener).setNormalTextColor(linkNorTextColor)
.setPressBgColor(linkPressBgColor),
" ",
SpecialImageUnit(
applicationContext,
BitmapFactory.decodeResource(resources, R.drawable.level),
80,
50
)
.setGravity(SpecialGravity.CENTER),
SpecialTextUnit(" 用户名 ")
)
.append(
SpecialTextUnit("[点我点我1").setClickableUnit(
SpecialClickableUnit(
textview,
listener
).setTag("1").setPressBgColor(-0xb000)
).setTextColor(
Color.BLUE
)
)
.append("哈哈哈")
.append(
SpecialTextUnit("[括号内测试富文本跨行显示,颜色红色]").setClickableUnit(
SpecialClickableUnit(
textview,
listener
).setTag("1").setPressBgColor(-0xb000)
).setTextColor(Color.RED)
)
.append("无默认背景显示下划线")
.append(
SpecialImageUnit(
applicationContext,
BitmapFactory.decodeResource(resources, R.drawable.level)
)
.setGravity(SpecialGravity.CENTER)
)
.append(
SpecialTextUnit("点我点我2").setClickableUnit(
SpecialClickableUnit(textview, listener).setTag("2").showUnderline()
.setPressBgColor(-0xb000).setPressTextColor(
Color.WHITE
)
).setTextColor(-0xb000)
)
.append("有默认背景")
.append(
SpecialImageUnit(
applicationContext,
BitmapFactory.decodeResource(resources, R.drawable.level),
120,
120
)
.setGravity(SpecialGravity.CENTER)
)
.append(
SpecialTextUnit("点我点我3").setClickableUnit(
SpecialClickableUnit(textview, listener).setTag("3").setPressBgColor(
Color.BLUE
).setPressTextColor(Color.WHITE)
).setTextColor(-0xb000).setTextBackgroundColor(-0x783115)
)
.append(
SpecialImageUnit(
applicationContext,
BitmapFactory.decodeResource(resources, R.drawable.level),
180,
180
)
.setGravity(SpecialGravity.CENTER)
)
.append("我只是个结尾")
return spanBuild.build()
}

Html 富文本
xiyin 用的这个:[Android-Rich-text-Editor/ARE/are/src/main/java/com/chinalwb/are/android/inner/Html.java at master · chinalwb/Android-Rich-text-Editor · GitHub](https://github.com/chinalwb/Android-Rich-text-Editor/blob/master/ARE/are/src/main/java/com/chinalwb/are/android/inner/Html.java)